<?php

require_once dirname(__FILE__).'/../lib/docenteGeneratorConfiguration.class.php';
require_once dirname(__FILE__).'/../lib/docenteGeneratorHelper.class.php';

/**
 * docente actions.
 *
 * @package    ecampus
 * @subpackage docente
 * @author     Grupo 608
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class docenteActions extends autoDocenteActions
{
    public function executeListEliminar(sfWebRequest $request)
   {
        $docente = $this->getRoute()->getObject();
//        try{
//            $docente->eliminar();
//            $this->getUser()->setFlash('notice','El docente fue borrado correctamente');
//        }
//        catch (DocenteTieneTutoriasException $e)
//        {
//           $this->getUser()->setFlash('notice',$e->getMessage());
//        }
//        catch (DocenteTieneCursosAsignadosException $e)
//        {
//            $this->getUser()->setFlash('notice',$e->getMessage());
//        }
        if($docente->sePuedeEliminar())
        {
           $docente->eliminar();
           $this->getUser()->setFlash('notice','El docente fue borrado correctamente');
        }
        else
        {
            if($docente->tieneAlumnosPorTutorias())
            {
                $this->getUser()->setFlash('error','El docente no se puede eliminar: tiene tutorias');
            }
            elseif($docente->tieneCursosAsignados())
            {
                $this->getUser()->setFlash('error','El docente no se puede eliminar: tiene cursos asignados');
            }
        }
         $this->redirect('docente');
    }
    public function executeListDelete(sfWebRequest $request)
    {
        $this->executeListEliminar($request);
    }
    public function executeListEliminarTutorias(sfWebRequest $request)
    {
        $docente = $this->getRoute()->getObject();
        if($docente->tieneAlumnosPorTutorias())
        {
            $docente->eliminarTutorias();
            $this->getUser()->setFlash('notice','Se borraron las tutorias del docente');
        }
        else
        {
            $this->getUser()->setFlash('notice','No posee alumnos asignados al docente');
        }
        $this->redirect('docente');
    }
    public function executeBatchEliminarTutorias(sfWebRequest $request)
    {
        $ids = $request->getParameter('ids');

        $q = Doctrine_Query::create()
            ->from('Docente a')
            ->whereIn('a.id_usuario', $ids);
        foreach($q->execute() as $docente)
        {
            $docente->eliminarTutorias();
        }
        $this->getUser()->setFlash('notice','Se desasignaron las tutorias a los docentes correctamente');
        $this->redirect('docente');
    }
    public function executeBatchEliminar(sfWebRequest $request)
    {
        $b = true;
        $ids = $request->getParameter('ids');

        $q = Doctrine_Query::create()
            ->from('Docente a')
            ->whereIn('a.id_usuario', $ids);
        foreach($q->execute() as $docente)
        {
            if($docente->sePuedeEliminar())
            {
                $docente->eliminar();
            }
            else
            {
                $b &= false;
            }
        }
        if($b)
        {
            $this->getUser()->setFlash('notice','Los registros se eliminaron correctamente');
        }
        else
        {
            $this->getUser()->setFlash('notice','Algunos registros no pudieron eliminarse');
        }
        $this->redirect('docente');
    }
    public function executeBatchDelete(sfWebRequest $request)
    {
        $this->executeBatchEliminar($request);
    }
}
